(** Appel les differentes fonctions pour executer de A a Z du code lisp *)



(** Obtient un AST a partir du code lisp. *)
let get_tree s = 
  match Parser.eval Lexer.token (Lexing.from_string s) with
    | Some a -> a
    | _ -> failwith "No expression"

let initialise () = 
  Tcheck.initialise ()

(** Type, et execute l'arbre. *)
let eval s = 
  (* On enlève les commentaires *)
  let ns = Coms.decommente s in
  let prog = get_tree ns in
    (* On type l'expression *)
    Tcheck.type_prog prog; 
    (* On évalue *)
    Exec.exec_prog "" prog
